function rand(min,max){
    var num=min+parseInt(Math.random()*(max-min+1))
    return num
}
function jiecheng(n){
    var num1=1
    for(var i=1;i<=n;i++){
        num1=num1*i
    }
    return num1
}
// 相差时间
function difference(time1,time2){
    var d1= time1.getTime()
    var d2= time2.getTime()
    var sum=(d2-d1)/1000
    var day = parseInt(sum/(24*60*60)) 
    var hours = parseInt((sum-day*60*60*24)/(60*60))
    var mi = parseInt((sum-hours*60*60-day*24*60*60)/60)
    var se = parseInt(sum-hours*60*60-day*24*60*60-mi*60)
    return '相差'+day+'天'+hours+'小时'+mi+'分钟'+se+'秒'
}
// 数字转中文
function getChinese(d){
    // var d = 1234
    var date = ['','十','百','千','万']
    var numD = ['零','一','二','三','四','五','六','七','八','九']
    var num=0
    var str=''
    var strD = d.toString()//'1234'
    for(var i=strD.length-1;i>=0;i--){
    /*  str=strD.charAt(i)+date[num]+str
        num++ */
        str=numD[Number(strD.charAt(i))]+date[num]+str
        num++
    }
    return str
    }
    // 封装一个方法，用于获取指定元素的指定属性
function getStyle(dom,attr){
    if(window.getComputedStyle){
          return window.getComputedStyle(dom,null)[attr]
    }else{
          return dom.currentStyle[attr]
    }
 }
 /*
作用:生成随机颜色
参数:无
返回值:返回一个十六进制的颜色  #456ABC
*/
function getColor(){
	var str = "#";
	for(var i=0;i<6;i++){		
		str += rand(0,15).toString(16)
	}	
	return str;
}
// 封装单属性运动函数
function move(dom,attr,target,fn){
    clearInterval(dom.timer)
    dom.timer=setInterval(function(){
        if(attr=='opacity'){
            var current = getStyle(dom,attr)*100;
        }else{
            var current= parseInt(getStyle(dom,attr))
        }
        var speed = (target - current)/10
        speed = speed>0?Math.ceil(speed):Math.floor(speed)
        var next = current + speed
        if(attr=='zIndex'){
            dom.style.zIndex = target
        }else if(attr=='opacity'){
            dom.style.opacity = next/100;
            dom.style.filter = "alpha(opacity="+next+")"
        }else{
            dom.style[attr] = next + 'px'
        }
        if(next==target){ 
         clearInterval(dom.timer)       
            if(fn){
                fn()
            }
        }
    },20)   
}
// 多属性缓动函数封装
function animate(dom,target,fn,interval){
    // dom:要运动的元素节点
    // target:运动目标的集合对象,如: {
    //     width:400,
    //     left:600,
    //     opacity:100,
    //     zIndex:999
    // }
    // fn:回调函数，可选参数
    // interval:定时器的间隔时间，可选参数，默认20ms
interval = interval||20;
// 一个元素节点上同时只能有一个定时
clearInterval(dom.timer);
dom.timer = setInterval(function(){
    // 每次运动开始都假设本次全部会到达目标
    var flag = true;
    // 每个属性都要运动一段距离
    for(var attr in target){
          // 第一：获取当前位置
          if(attr == "opacity"){
          var current = parseInt(getStyle(dom,attr)*100)
          }else{
          var current = parseInt(getStyle(dom,attr))
          }
          // 第二：计算速度
          var speed = (target[attr] - current)/10;
          speed = speed>0?Math.ceil(speed):Math.floor(speed);
          // 第三：计算下一个位置
          var next = current + speed;
          // 第四：定位元素
          if(attr=='opacity'){
          dom.style.opacity = next/100;
          dom.style.filter = "alpha(opacity="+next+")"
          }else if(attr=='zIndex'){
          dom.style.zIndex = target.zIndex;
          next = target.zIndex;
          }else{
          dom.style[attr] = next+"px";
          }
          // 是否到达目标
          if(next!=target[attr]){
          flag = false;
          }
    }


    // 所有属性本此运动完毕，判断是否都到达了
    if(flag){
          clearInterval(dom.timer);
          if(fn){
          fn()
          }
          // fn&&fn();
    }

},interval)
}